package com.tjetc.service;

import com.tjetc.common.JsonResult;
import com.tjetc.entity.Travelogue;

import java.util.List;
import java.util.Map;

public interface TravelogueService {
    JsonResult<List<Travelogue>> findAll(Long is_editor);

    JsonResult<Travelogue> findById(Long travelogueId);

    JsonResult<Void> addTravelogue(Travelogue travelogue);

    JsonResult<Void> createNewTravelogue(Travelogue travelogue);


    // 添加游记方法
    boolean addNewTravelogue(Travelogue travelogue);

    JsonResult<Void> updateTravelogue(Travelogue travelogue);

    JsonResult<Void> deleteById(Long travelogueId);

    JsonResult getTravelogues(Integer l);
    
    /**
     * 根据城市的景点查询游记
     * @param params 包含查询参数：spotIds, isFeatured, isEditor, sortBy等
     * @return 游记列表及相关信息
     */
    JsonResult findByCitySpots(Map<String, Object> params);

    /**
     * 根据ID查询游记及其作者信息
     * @param travelogueId 游记ID
     * @return 包含作者信息的游记及结果
     */
    JsonResult<com.tjetc.common.vo.user.TravelogueView> findArticleWithAuthorById(Long travelogueId);
}

